ASP.NET Core এ TempData ব্যবহার

Microsoft Technologies - এএসপি ডট নেট কোর (ASP.Net Core) সেশন এবং কুকিজ (Session and Cookies) |
242
242

TempData হলো একটি বিশেষ ধরনের ডেটা স্টোর যা এক রিকোয়েস্ট থেকে আরেক রিকোয়েস্টে ডেটা সংরক্ষণ করতে ব্যবহৃত হয়। এটি সাধারণত এমন তথ্য স্টোর করতে ব্যবহৃত হয় যা এক রিকোয়েস্টের জন্য প্রাসঙ্গিক, যেমন একটি সফল সাবমিশন বা একটি ত্রুটির বার্তা, যা পরবর্তী রিকোয়েস্টে ব্যবহারকারীর কাছে দেখানো হবে।

ASP.NET Core-এ TempData ব্যবহার করা হয় সাধারণত Redirect বা Post-Redirect-Get প্যাটার্নের সময়, যেখানে আপনাকে রিকোয়েস্টের মাঝে কিছু ডেটা পাস করতে হয়, এবং পরবর্তী রিকোয়েস্টে সেই ডেটা প্রয়োজন হয়।


TempData এর বৈশিষ্ট্যসমূহ

  • স্বল্পকালীন স্টোরেজ: TempData শুধুমাত্র একটি রিকোয়েস্ট থেকে পরবর্তী রিকোয়েস্ট পর্যন্ত ডেটা সংরক্ষণ করে। অর্থাৎ, এটি রিফ্রেশ বা নতুন রিকোয়েস্টের সাথে ডেটা মুছে যাবে।
  • ডেটা শেয়ারিং: TempData ব্যবহারকারীর একটি রিকোয়েস্ট থেকে পরবর্তী রিকোয়েস্টে ডেটা শেয়ার করার জন্য কার্যকরী। উদাহরণস্বরূপ, একটি সফল অপারেশনের পর একটি বার্তা দেখানোর জন্য।
  • সক্ষমতা: TempData বিভিন্ন ডেটা টাইপ সাপোর্ট করে, যেমন স্ট্রিং, ইন্টিজার, অবজেক্ট ইত্যাদি।

TempData ব্যবহার করার উদাহরণ

1. TempData সেট করা (Storing Data)

TempData ব্যবহার করতে আপনি Controller এর মধ্যে TempData প্রপার্টি সেট করতে পারেন:

public class HomeController : Controller
{
    public IActionResult Index()
    {
        // TempData তে একটি বার্তা সেট করা
        TempData["Message"] = "আপনার নিবন্ধন সফল হয়েছে!";
        return RedirectToAction("Success");
    }

    public IActionResult Success()
    {
        // TempData থেকে বার্তা নেওয়া
        var message = TempData["Message"];
        return View((string)message);  // Success.cshtml এ বার্তা পাঠানো
    }
}

এখানে, TempData["Message"] সেট করা হয়েছে এবং পরবর্তী রিকোয়েস্টে Success অ্যাকশনে সেই বার্তা প্রদর্শিত হবে।

2. TempData ব্যবহার করা (Getting Data)

TempData-তে রাখা ডেটা পরবর্তী রিকোয়েস্টে অ্যাক্সেস করা হয় এবং সেগুলি Controller বা View-এ ব্যবহার করা যায়:

@{
    // TempData থেকে বার্তা দেখানো হচ্ছে
    var message = TempData["Message"] as string;
}
@if (message != null)
{
    <div class="alert alert-success">@message</div>
}

এখানে, TempData["Message"] থেকে বার্তা নেওয়া হয়েছে এবং যদি কোন বার্তা থাকে তবে সেটি UI-তে প্রদর্শিত হবে।

3. TempData এর বৈশিষ্ট্য "Keep" এবং "Peek"

  • Keep(): TempData-এ একটি মান সেট করার পর, তা শুধুমাত্র এক রিকোয়েস্টের জন্য থাকে। কিন্তু আপনি যদি চান যে, পরবর্তী রিকোয়েস্টেও TempData এর মান অব্যাহত থাকুক, তবে Keep() মেথড ব্যবহার করতে পারেন।
public IActionResult Index()
{
    TempData["Message"] = "এই বার্তা পরবর্তী রিকোয়েস্টে থাকবে!";
    TempData.Keep("Message"); // TempData থেকে বার্তা রাখবে পরবর্তী রিকোয়েস্টে
    return RedirectToAction("Success");
}
  • Peek(): Peek() মেথড ব্যবহার করে আপনি TempData থেকে মান পড়তে পারেন, কিন্তু এটি ডেটা মুছে ফেলে না। অর্থাৎ, আপনি TempData থেকে ডেটা পড়তে পারবেন এবং সেটি পরবর্তী রিকোয়েস্টেও থাকবে।
public IActionResult Success()
{
    var message = TempData.Peek("Message");
    return View((string)message);
}

এখানে, TempData থেকে মান পড়া হয়েছে এবং সেটি পরবর্তী রিকোয়েস্টের জন্য থাকবে।

4. TempData এর ব্যবহার কেস

TempData সাধারণত Post-Redirect-Get প্যাটার্নে ব্যবহার করা হয়, যেখানে একটি HTTP POST রিকোয়েস্ট থেকে ডেটা পাওয়ার পর ব্যবহারকারীকে একটি HTTP GET রিকোয়েস্টে রিডাইরেক্ট করা হয় এবং সেই সময়ে ডেটা সহ ফলাফল দেখানো হয়।

[HttpPost]
public IActionResult SubmitForm(User user)
{
    if (ModelState.IsValid)
    {
        // TempData সেট করা
        TempData["SuccessMessage"] = "ফর্ম সফলভাবে জমা হয়েছে!";
        return RedirectToAction("FormSuccess");
    }

    return View(user);
}

public IActionResult FormSuccess()
{
    // TempData থেকে ডেটা নেয়া
    var successMessage = TempData["SuccessMessage"];
    return View((string)successMessage);
}

এখানে, SubmitForm অ্যাকশনে ফর্ম সাবমিশনের পর ব্যবহারকারীকে FormSuccess অ্যাকশনে রিডাইরেক্ট করা হয়, এবং TempData থেকে একটি সফল বার্তা দেখানো হয়।


TempData এর সীমাবদ্ধতা

  1. স্বল্পকালীন স্টোরেজ: TempData শুধুমাত্র পরবর্তী রিকোয়েস্ট পর্যন্ত ডেটা সংরক্ষণ করে, তাই এটি দীর্ঘস্থায়ী ডেটা স্টোরেজের জন্য উপযুক্ত নয়।
  2. আলাদা ভিউ এবং কন্ট্রোলার ফাংশন: TempData কেবলমাত্র Controller-এ সেট করা হয় এবং পরবর্তী Controller বা View-এ অ্যাক্সেস করা যায়।
  3. পরবর্তী রিকোয়েস্টে মুছে ফেলা: TempData থেকে মান একবার রিড করা হলে তা মুছে যায়, কিন্তু আপনি চাইলে Keep() অথবা Peek() মেথড ব্যবহার করে সেটি পরবর্তী রিকোয়েস্টের জন্য রাখতে পারেন।

সারাংশ

ASP.NET Core-এ TempData একটি গুরুত্বপূর্ণ উপাদান, যা রিকোয়েস্টের মধ্যে সাময়িক ডেটা পাস করতে সাহায্য করে। এটি সাধারণত Post-Redirect-Get প্যাটার্নে ব্যবহৃত হয়, যেখানে একটি রিকোয়েস্ট থেকে পরবর্তী রিকোয়েস্টে ডেটা সংরক্ষিত থাকে। TempData ব্যবহার করে সফল অপারেশন, ত্রুটি বার্তা বা অন্য কোনও সাময়িক তথ্য শেয়ার করা যায়, এবং এটি ডেভেলপমেন্ট ও ইউআই ইন্টারঅ্যাকশনের ক্ষেত্রে অত্যন্ত কার্যকর।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion